// pages/cart/cart.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    cart: [],
    // 总价
    totalPrice: 0,
    // 总数量
    totalNum: 0,
    // 全选按钮布尔值
    ckAll: false,
    // 地址数据
    address: {},
  },
  // 点击复选框的时候，也要调用setInfo
  changeCk(e) {
    let index = e.currentTarget.dataset.id;
    let cart = this.data.cart;
    // let index=cart.findIndex(item=>{
    //   return item.goods_id==id
    // })
    cart[index].bol = !cart[index].bol;
    this.setData({
      cart,
    });
    // 调用方法重新设置总价，总数，全选按钮
    this.setInfo(cart);
  },

  // 全选按钮
  changeAll() {
    let cart = this.data.cart;
    let ckAll = this.data.ckAll;
    cart.forEach((item) => {
      item.bol = !ckAll;
    });
    this.setData({
      cart,
    });
    // 设置总价，总数，全选按钮
    this.setInfo(cart);
  },

  // 加减按钮
  changeNum(e) {
    let cart = this.data.cart;
    // 改变的是数组的第几个
    let index = e.currentTarget.dataset.index;
    // 按钮的加减
    let val = e.currentTarget.dataset.num;

    cart[index].num += val;

    if (cart[index].num == 0) {
      wx.showModal({
        title: "确定删除该条数据么?",
        content: "",
        showCancel: true,
        cancelText: "取消",
        cancelColor: "#000000",
        confirmText: "确定",
        confirmColor: "#3CC51F",
        success: (res) => {
          if (res.confirm) {
            cart.splice(index, 1);
          } else if (res.cancel) {
            cart[index].num = 1;
          }
          console.log(cart);
          wx.setStorageSync("cart", cart);
          this.setData({
            cart,
          });
          this.setInfo(cart);
        },
      });
    }
    this.setData({
      cart,
    });
    this.setInfo(cart);
  },
  // 设置总价，总数，全选按钮
  setInfo(cart) {
    let totalPrice = 0;
    let totalNum = 0;
    let ckAll = true;

    // 遍历数组，拿对象里的数量*单价 与totalPrice累加
    cart.forEach((item) => {
      if (item.bol) {
        totalPrice += item.num * item.goods_price;
        totalNum += item.num;
      }
      if (!item.bol) {
        ckAll = false;
      }
    });

    this.setData({
      cart,
      totalPrice,
      totalNum,
      ckAll,
    });
  },
  // 调用小程序api获取地址
  getAddress() {
    // 自带的api
    wx.chooseAddress({
      success: (result) => {
        console.log(result);
        wx.setStorageSync("address", result);
      },
      fail: () => {},
      complete: () => {},
    });
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {},
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {},
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 缓存里的数据
    let cart = wx.getStorageSync("cart")||[];
    let address = wx.getStorageSync("address");
    console.log(address);
    this.setData({
      address,
    });
    this.setInfo(cart);
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {},
});
